A directory server is a network server that provides directory services or naming services. A directory service provides a directory of names, profile information, and machine addresses of users and resources on a network. It is used to manage user accounts and network permissions. When sent a user name, a directory service returns the attributes of that individual, which may include a telephone number as well as an e-mail address. A naming service converts a name into a physical address on a network, some what similar to someone looking up a phone number in a telephone book by first and last name. Examples of directory servers include lightweight directory access protocol (LDAP) servers, Active Directory (AD) servers, user location service (ULS) servers, and other types of directory servers.
For instance, an example directory server may include two suffixes: a first suffix including o=company and c=us, and a second suffix including o=company and c=in. In this example, “o” specifies an organization and “c” specifies a country. The directory server may also include two sub-trees: a first sub-tree including ou=unit, o=company, and c=us, and a second sub-tree including ou=unit, o=company, and c=in. In this example, “ou” specifies an organizational unit. In an example scenario relating to this directory server, it may be found that just the sub-tree including ou=unit, o=company, and c=us receives many requests from clients, where these requests specifically relate to particular directory entries and for particular attributes of those directory entries. As such, a network administrator may determine that the directory server in question is overloaded by requests, and has to be replicated to relieve the directory server of some of this congestion.
However, the network administrator is limited in the prior art as to how he or she can replicate the directory server. First, the administrator may manually replicate the entire directory of the directory server to a new directory server. However, this is disadvantageous, because just the sub-tree including ou=unit, o=company, and c=us has received many requests, and even then these requests are for just some of the directory entries and just for some of the attributes of these entries. Therefore, replicating the entire directory is overkill in relation to current needs.
Second, the administrator may manually replicate just the portion of the directory server relating to the suffix including o=company and c=us. This is also overkill to some extent, because just the sub-tree including ou=unit, o=company, and c=us has received many requests, and as before even these requests are for just some of the directory entries and for just some of the attributes of these entries. Third, the administrator may manually replicate just the portion of the directory server relating to the sub-tree including ou=unit, o=company, and c=us. Again, however, this is overkill to some extent, because the requests in question relate to just some of the directory entries and to just some of the attributes of these entries.
The prior art for directory replication is thus disadvantageous in at least two respects. First, the network administrator has to manually monitor the directory server and manually initiate replication of the directory server. That is, the directory server replication process is not autonomous. Second, the granularity at which the network administrator is able to replicate the directory server does not closely match or correlate to the requests made to the directory server that are causing the need for such replication. These and other shortcomings of the prior art are addressed by the present invention.